1. Field of the Invention
The present invention relates to a development instrument for computer software and, more particularly, to a development instrument for use in conjunction with software utilized to interactively control physical items having momentum.
2. Description of the Prior Art
It is well known to provide microprocessor-based digital computers and associated software to control physical items having momentum. Examples of such controlled items include motors, engines, vehicles and other physical devices whose velocity of operation cannot be changed instantaneously. In typical systems for controlling such devices, various operating parameters of the controlled device are monitored so as to generate analog signals; the analog signals are translated to digital form by conventional analog-to-digital converters, and then operated upon by a microprocessor-based digital computer system. The usual object of the computer system in such instances is to optimize operation of the physical item in response to various monitored input parameters; for example, the object of an engine control system may be to optimize engine performance subject to monitored parameters reflecting fuel consumption, engine operating speed, oil temperature, water temperature and so forth. In order to accomplish such optimization and control, the microprocessor-based computer is operated by a software program which executes one or more algorithms, typically several, which operate upon the monitored parameters to generate control signals for the physical item.
In developing software programs for such applications, it is necessary and desirable to make various changes and additions, sometimes referred to as "patches", to the software program. The process of editing the software to implement such changes and additions is typically referred to as a development effort, and the means for making such additions and changes can be called a development system or software development instrument. In conventional software development systems, it is necessary to stop execution of the comuter program or otherwise operatively interrupt the control of the physical item during the time that changes or additions are being made to the software program. From a practical standpoint, this often requires that motion of the physical item be halted in order to prevent runaway conditions during the time that the control signals are interrupted. Such interruptions are not only time consuming, but can make it difficult to implement meaningful changes in the software program.
Generally speaking, workers in the programming art have avoided attempting to edit or otherwise modify software programs while the programs are controlling operation of physical items. Such modifications during operating periods are generally referred to as "real-time" modifications, and are avoided because, while making real time modifications, the real-time modifications may cause uncontrolled and unintended changes in the algorithms in the program, leading to loss of control over the physical item which is to be controlled or other unintended results. For example, when making a real-time modification or patch, the computer may operate upon a partial instruction or upon a partial patch, with unintended and unforeseeable results.